当前位置: > 论文中心 > 计算机论文 >

基于CPLD的USB总线读写控制功能实现

时间:2013-08-09 09:30 点击:
以CPLD作为主控芯片,设计了一种针对USB总线的数据读写控制器。U盘通过该控制器转接到PC机的USB接口,利用控制器对USB总线上的数据进行实时监测分析,自动禁止PC机上的文件数据输出到U盘,同时不影响PC机对U盘中文件的正常读取。
0 引言
目前市面上广泛流行的U盘,以其传输速度快、容量大、方便携带等优点,深受消费者青睐。然而这种便携式存储设备,很多时候却悄悄地成为电脑病毒的寄生场所。对于一些涉密部门而言,其计算机对USB接口往往极其敏感,有些甚至干脆直接锁住USB接口,以防止插入U盘窃取计算机中的资料。与U盘相比,他们往往更愿意采用简单可靠的只读光盘来交换数据,如图1。但普通光盘难以做到重复利用,且需要事前刻录,使用起来不及U盘便捷。
本文论述了一种基于CPLD的USB总线读写控制器设计,该设计能够从硬件上杜绝这种“通过U盘窃取数据”的可能,从而使人们在享受U盘传递数据快捷便利的同时,不必再有数据被窃取的担忧,也省去了以往刻录光盘的繁琐,使用模式如图2所示。
                
图1 传统的只读光驱+只读光盘模式       图2 USB口+USB总线控制器+普通U盘模式
1 硬件架构
本设计基于EPM3512AQC208芯片,采用两片TI公司1106芯片作为USB总线转发芯片,其接口电路参见文献[5]。系统时钟采用12MHz无源晶振,时钟信号经ICS512时钟管理芯片倍频成96MHz后提供给CPLD作为基准时钟。考虑到USB2.0的最大供电电流只有500mA,此处控制板采用单独外接+5V直流电源供电。另外,使用LDO电源管理芯片将+5V电源转换成+3.3V后供CPLD工作,芯片型号为LM1084-3.3V;使用TPS3307-33芯片进行电路复位管理。
2 CPLD软件实现
2.1 软件实现方案
要实现数据从U盘到PC的单向流动,即禁止数据输出到U盘,有两种实现方式。
方案一:CPLD实时监测USB总线上的数据,当检测到Write(10)命令(其SCSI指令代码为0x2a)或Write(12)命令(其SCSI指令代码为0xaa)时,自动将两根USB差分总线中的一条拉低,从而造成数据差分输出失败,达到禁止输出的目的。
方案二:CPLD实时监测USB总线上的数据,当检测到Mode sense命令(其SCSI指令代码为0x1a)时,预示着接下来U盘将向主机传输相应存储介质参数了。在传送的数据串中,有一位标示着该存储设备是否可以被写入。以普通带写保护功能的U盘为例,开启写保护时,检测到的输入参数数据流为23 00 80 00……,关掉写保护后,检测到的输入参数数据流为23 00 00 00……,以上数据为小端模式,故第三个字节的最高位为写保护信息位,图3是利用Bus Hound工具抓取的两种U盘在实际应用中的Mode sense命令返回参数。若利用USB总线控制器将此位修改为1,则该U盘即不能被写入,但不影响其正常读取,从而实现了我们所需的功能。

   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312